# 多边形类
class Polygon:
    def __init__(self, no_of_sides):
        # n: 边数  sides:所有边的边长
        self.n = no_of_sides
        self.sides = [0 for i in range(no_of_sides)]

    # 对每个边的边长进行赋值
    def inputSides(self):
        self.sides = [float(input("输入边长 "+str(i+1)+" : ")) for i in range(self.n)]

    # 打印每条边的边长
    def dispSides(self):
        for i in range(self.n):
            print("边长",i+1,"是",self.sides[i])


# 三角形类(子类,派生类) 继承了 多边形类(父类,基类)
class Triangle(Polygon):
    def __init__(self):
        # 继承了父类的属性
        Polygon.__init__(self,3)

    # 三角形面积 : 利用半周长s 和三角形的三条边a,b,c计算面积
    # 海伦公式：面积=√[s(s - a)(s - b)(s - c)]，其中s=(a + b + c)/2。
    def findArea(self):
        a, b, c = self.sides
        # 计算半周长
        s = (a + b + c) / 2
        area = (s*(s-a)*(s-b)*(s-c)) ** 0.5
        print('三角形的面积是 %0.2f' %area)

t = Triangle()
print(t.__dict__)
t.inputSides()
t.dispSides()
t.findArea()